指定した表の統計を更新します。このプロシージャは、指定した表内の行をランダムにサンプリングすることによって統計を推定します。サンプルのサイズは、指定した行の数(sampleSTRの形式が'N ROWS'の場合)または、行の総数の割合(sampleSTRの形式が'p PERCENT'の場合)です。
アクセス制御がTimesTenのインスタンスに対して有効である場合、このプロシージャにはDDL権限が必要です。
ttOptEstimateStatsには、次のパラメータがあります。
ttOptEstimateStatsは結果を返しません。
CALL ttOptEstimateStats ( 'ACCTS', 1, '5 PERCENT' ); CALL ttOptEstimateStats ( 'ACCTS', 1, '75 ROWS' );
TimesTenの統計には、各表の行数、各列の一意の値の数、各列の最大値および最小値が含まれます。TimesTenでは、列の値の配分は均一であると想定しています。
2,048バイトを超える列の場合、推定は行われず、これらの列の統計は更新されません。2,048バイトを超える列の統計を更新するには、ttOptUpdateStats組込みプロシージャを使用します。可変長列の場合、このプロシージャによって更新されるのは、列の最大長が2,048バイト以下である場合の統計のみです。
sampleSTRパラメータに非常に小さな値を選択した場合、このルーチンは高速に実行されますが、実行計画は最適にはならない可能性があります。計画の正確性を低下させることなく、統計の計算を高速に実行し、適切なデータ分布を得るには、10%程度の選択が適しています。指定した行の数が十分であるか、または対象となる表が十分小さい場合、TimesTenはパフォーマンスを向上させるために、長さが2,048バイト以下のすべての列に対して、正確な統計を計算します。たとえば、ttOptEstimateStats ('ACCTS', 1, '100 PERCENT' )とttOptUpdateStats ( 'ACCTS', 1 )の相違点は、ttOptEstimateStatsが長い列の統計を計算しないということのみです。
統計は、システム表TBL_STATSおよびCOL_STATSに格納されます。
ttOptSetColIntvlStats
ttOptSetFlag
ttOptSetOrder
ttOptSetTblStats
ttOptUpdateStats
ttOptUseIndex